/**
描述
  密码要求:
    1.长度超过8位
    2.包括大小写字母.数字.其它符号,以上四种至少三种
    3.不能有长度大于2的包含公共元素的子串重复 （注：其他符号不含空格或换行）


  输入描述：
  一组字符串。

  输出描述：
  如果符合要求输出：OK，否则输出NG


  示例1
  输入：
      021Abc9000
      021Abc9Abc1
      021ABC9000
      021$bc9000
  输出：
      OK
      NG
      NG
      OK
*/
const readline = require('readline')
const rl = readline.createInterface({
  input:process.stdin,
  output:process.stdout
})

function transform(inputStr) {
  let isok = 'OK'
  if (inputStr.length <= 8) {
    isok = 'NG'
  }
  let count = 0
  if (/[a-z]/.test(inputStr)) {
    count++
  }
  if (/[A-Z]/.test(inputStr)) {
    count++
  }
  if (/[0-9]/.test(inputStr)) {
    count++
  }
  if (!/^[a-zA-Z0-9-]*$/.test(inputStr)) {
    count++
  }
  if (count < 3) {
    isok = 'NG'
  }
  for(let i = 0; i < inputStr.length - 3; i++){
    let str = inputStr.substr(i,3)
    if(inputStr.substr(i + 1).includes(str)){
       isok="NG";
    }
  }
  console.log(isok)
}

// 本地测试
// let inputStr = '021$bc9000'
// transform(inputStr)

// 提交测试
rl.on('line', (line) => {
  if (line) {
    // 处理接收
    transform(line)
  }
})